home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1994 November: Tool Chest / Dev.CD Nov 94.toast / New System Software Extensions / OpenDoc A6 / OpenDoc Parts Framework / OPF / Examples / Text / Include / EmbedRun.h next >
Encoding:
Text File  |  1994-04-21  |  3.2 KB  |  104 lines  |  [TEXT/MPS ]

  1. //========================================================================================
  2. //
  3. //    File:                            EmbedRun.h
  4. //    Release Version:    $ 1.0d1 $
  5. //
  6. //    Author:                        Anthone Burbidge
  7. //    Creation Date:        3/28/94
  8. //
  9. //    Copyright:    © 1993, 1994 by Apple Computer, Inc., all rights reserved.
  10. //
  11. //========================================================================================
  12.  
  13. #ifndef _EMBEDRUN_
  14. #define _EMBEDRUN_
  15.  
  16. #ifndef _GRFXRUN_
  17. #include "GrfxRun.h"
  18. #endif
  19.  
  20. //========================================================================================
  21. // Forward class declarations
  22. //========================================================================================
  23.  
  24. class CTextProxyRun;
  25.  
  26.  
  27. //========================================================================================
  28. // Constant definitions
  29. //========================================================================================
  30.  
  31. const ClassId kEmbeddedPartClassId = 'EMBD';
  32. const ClassId kProxyRunAttr = 'PART';
  33.  
  34.  
  35. //========================================================================================
  36. // CLASS CEmbeddedRun
  37. //========================================================================================
  38.  
  39. class CEmbeddedRun : public CBetterGraphicsRun
  40. {
  41. // ----- Constants
  42. public:
  43.     enum { kSelectionWidth = 4 };
  44.  
  45. // ----- Initialization/destruction
  46. public:        
  47.     CEmbeddedRun();
  48.     void InitEmbeddedRun();
  49.     virtual ~CEmbeddedRun();
  50.  
  51. // ----- Inherited from CGraphicsRun
  52. public:
  53.     virtual CAttrObject* CreateNew() const;
  54.     virtual ClassId GetClassId() const;
  55.     virtual void GetAttrIDs(short* countAttr, AttrId* attrArray) const;
  56.     virtual void FreeData();
  57.  
  58.     virtual OSErr WriteToStream(CStream* outputStream);
  59.     virtual OSErr ReadFromStream(CStream* inputStream);
  60.  
  61.     virtual void DrawSelection(char hiliteStat, const RunPositionPB* paramPb);
  62.     virtual void DoClick(ClickPB*, TClickCommandInfo*, Boolean* abortDrag);
  63.     virtual Boolean PointInResizeHandle(ClickPB* clickPB) const;
  64.     virtual void Resize(ClickPB* clickPB);
  65.     virtual void DrawResizeFeedback(const Rect& rect);
  66.  
  67. protected:
  68.     virtual void BufferToAttribute(AttrId theAttr, const void* attrBuffer);
  69.     virtual void AttributeToBuffer(AttrId theAttr, void* attrBuffer) const;
  70.     virtual long GetAttrFlags(AttrId theAttr, void* attrBuffer, long updateMessage=0) const;
  71.     virtual Boolean GetDimensions(short* hite, short* width);
  72.     virtual void Draw(const Rect* theRect);
  73.     
  74. // ----- New API
  75. public:
  76.     void SetProxyRun(CTextProxyRun* proxyRun);
  77.     CTextProxyRun* GetProxyRun() const;
  78.     virtual void ChangePosition(const Point& pt);
  79.     virtual void ChangeShape(const Rect& rt);
  80.  
  81. // ----- New fields
  82. private:
  83.     CTextProxyRun*        fProxyRun;
  84. };
  85.  
  86. //----------------------------------------------------------------------------------------
  87. // CEmbeddedRun::SetProxyRun
  88. //----------------------------------------------------------------------------------------
  89.  
  90. void CEmbeddedRun::SetProxyRun(CTextProxyRun* proxyRun)
  91. {
  92.     fProxyRun = proxyRun;
  93. }
  94. //----------------------------------------------------------------------------------------
  95. // CEmbeddedRun::GetProxyRun
  96. //----------------------------------------------------------------------------------------
  97.  
  98. CTextProxyRun* CEmbeddedRun::GetProxyRun() const
  99. {
  100.     return fProxyRun;
  101. }
  102.  
  103. #endif
  104.